To quantitatively examine the efficacy of vegetation restoration in drylands globally.
Study-level viz to document patterns in exclusions primarily and the relatie frequenices, at the study level, of major categories of evidence.
#study data####
library(tidyverse)
studies <- read_csv("data/studies.csv")
studies
## # A tibble: 278 x 18
## ID title technique data region exclude rationale observations
## <dbl> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 152 Shor… seeding,… expe… Africa no <NA> <NA>
## 2 180 Rest… chemical… App.… Africa no <NA> <NA>
## 3 229 Infl… soil see… fiel… Africa no <NA> <NA>
## 4 230 Acti… planting fiel… Africa no <NA> <NA>
## 5 255 The … grazing … fiel… Africa no <NA> <NA>
## 6 262 Reve… seeding,… eper… Africa no <NA> <NA>
## 7 263 The … phytogen… fiel… Africa no <NA> <NA>
## 8 264 Eval… seeding,… fiel… Africa no <NA> <NA>
## 9 271 Patc… natural … fiel… Africa no <NA> <NA>
## 10 4 Fact… natural … App.… Africa no <NA> <NA>
## # ... with 268 more rows, and 10 more variables: disturbance <chr>,
## # system <chr>, goal <chr>, intervention <chr>, paradigm <chr>,
## # grazing <chr>, hypothesis <chr>, soil <chr>, benchmark <chr>,
## # notes <chr>
#quick look at rationale needed
exclusions <- studies %>%
filter(exclude == "yes")
#quick look at studies with paradigms
evidence <- studies %>%
filter(exclude == "no")
#library(skimr)
#skim(evidence)
#study-level viz#####
#exclusions
ggplot(exclusions, aes(rationale, fill = region)) +
geom_bar() +
coord_flip() +
labs(x = "rational for exclusion", y = "frequency") +
scale_fill_brewer(palette = "Paired")
ggplot(evidence, aes(disturbance, fill = paradigm)) +
geom_bar(na.rm = TRUE) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
labs(y = "frequency")
ggplot(evidence, aes(region, fill = paradigm)) +
geom_bar(na.rm = TRUE) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
labs(y = "frequency")
ggplot(evidence, aes(data, fill = paradigm)) +
geom_bar(na.rm = TRUE) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
labs(y = "frequency")
ggplot(evidence, aes(system, fill = paradigm)) +
geom_bar(na.rm = TRUE) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
labs(y = "frequency")
ggplot(evidence, aes(goal, fill = paradigm)) +
geom_bar(na.rm = TRUE) +
coord_flip() +
scale_fill_brewer(palette = "Paired") +
labs(x = "outcome", y = "frequency")
#step 1 models####
#paradigm
derived.evidence <- evidence %>%
group_by(technique, data, region, disturbance, goal, paradigm) %>% summarise(n = n())
#active-passive split
m <- glm(n~paradigm, family = poisson, derived.evidence)
anova(m, test="Chisq")
## Analysis of Deviance Table
##
## Model: poisson, link: log
##
## Response: n
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 167 9.9147
## paradigm 1 0.045115 166 9.8696 0.8318
#region
m1 <- glm(n~paradigm*region, family = poisson, derived.evidence)
#m1
#summary(m1)
anova(m1, test="Chisq")
## Analysis of Deviance Table
##
## Model: poisson, link: log
##
## Response: n
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 167 9.9147
## paradigm 1 0.045115 166 9.8696 0.8318
## region 6 0.301367 160 9.5682 0.9995
## paradigm:region 6 0.213627 154 9.3546 0.9998
#outcome
m2 <- glm(n~paradigm*goal, family = poisson, derived.evidence)
#m1
#summary(m1)
anova(m2, test="Chisq")
## Analysis of Deviance Table
##
## Model: poisson, link: log
##
## Response: n
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 167 9.9147
## paradigm 1 0.045115 166 9.8696 0.8318
## goal 6 0.240941 160 9.6287 0.9997
## paradigm:goal 4 0.301480 156 9.3272 0.9897
#even split between active and passive evidence by all key categories
A summary of sort process using PRISMA.
library(PRISMAstatement)
prisma(found = 1504,
found_other = 5,
no_dupes = 1039,
screened = 1039,
screen_exclusions = 861,
full_text = 178,
full_text_exclusions = 100,
qualitative = 100,
quantitative = 78,
width = 800, height = 800)
Check data and calculate necessary measures.
data <- read_csv("data/data.csv")
data <- data %>%
mutate(lrr = log(mean.t/mean.c), rii = ((mean.t-mean.c)/(mean.t + mean.c)), var.es = ((sd.t^2/n.t*mean.t^2) + (sd.c^2/n.c*mean.c^2)))
data
## # A tibble: 3,285 x 48
## study.ID ID publication.year data.year exp.year `exp.length (mo…
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1.1 2018 NA NA NA
## 2 1 1.1 2018 NA NA NA
## 3 1 1.1 2018 NA NA NA
## 4 1 1.2 2018 NA NA NA
## 5 1 1.2 2018 NA NA NA
## 6 1 1.2 2018 NA NA NA
## 7 1 1.3 2018 NA NA NA
## 8 1 1.3 2018 NA NA NA
## 9 1 1.3 2018 NA NA NA
## 10 1 1.4 2018 NA NA NA
## # ... with 3,275 more rows, and 42 more variables: disturbance <chr>,
## # focus <chr>, technique <chr>, paradigm <chr>, hypothesis <chr>,
## # pathway <chr>, plant.species <chr>, target.plant <chr>,
## # measure.success <chr>, measured.factor <chr>, factor.levels <chr>,
## # treatment <chr>, control <chr>, unit <chr>, Nsites <dbl>, n.t <dbl>,
## # n.c <dbl>, ntotalsamples <dbl>, mean.t <dbl>, mean.c <dbl>,
## # sd.t <dbl>, sd.c <dbl>, se.t <dbl>, se.c <dbl>, `p-value` <dbl>,
## # df <dbl>, measure.dispersion <chr>, lat <dbl>, long <dbl>,
## # continent <chr>, country <chr>, ecosystem <chr>, `elevation
## # (m)` <dbl>, `MAP (mm)` <dbl>, aridity.index <dbl>,
## # `potential.evaporation (mm)` <dbl>, grazing <chr>, soil <chr>,
## # notes <chr>, lrr <dbl>, rii <dbl>, var.es <dbl>